import {createConnection} from "mysql2";
import config from "../config/config";

export const execute =(sql:string, params:Array<string>|string, callback:Function)=>{
  const connection = createConnection(config.db)
  connection.connect((err)=>{
    if (err) {
      throw err
    }
    connection.query(sql, params, (err, result, fields)=>{
      if (err) {
        throw err
      }

      // 将查询出来的数据返回给回调函数
      callback &&
      callback(
          result ? JSON.parse(JSON.stringify(result)) : null,
          fields ? JSON.parse(JSON.stringify(fields)) : null
      )

      // 停止链接数据库，必须在查询语句后，不然一调用这个方法，就直接停止链接，数据操作就会失败
      connection.end(function(err) {
        if (err) {
          console.log('关闭数据库连接失败！')
          throw err
        }
      })
    });
  })
}

// const sql ="insert into admins(name, email) values('ljq','22@qq.com')";
// execute(sql,[],(err:any, result:any)=>{
//   console.log(err)
//   console.log(result,'insert')
// });
// execute('select id,name from admins',[],(results:Array<any>)=>{
//   console.log(results)
//
// });